package com.sf.leetcode.primary_alogrithm;

import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;

public class containsDuplicate {

    public static void main(String[] args) {
        int[] nums = {1,2,3,1};
        System.out.println(containsDuplicate(nums));
    }

    public static boolean containsDuplicate(int[] nums){

        //使用简单粗暴的双重for循环来一个一个比对数据是否相同。（LeetCode提交显示超时，不推荐使用）
//        for(int i = 0; i < nums.length; i++){
//            for(int j = 1 + i; j < nums.length; j++){
//                if(nums[i] == nums[j]){
//                    return true;
//                }
//            }
//        }
//        return false;

        //利用Set中元素的唯一性来判断是否存在重复元素。
//        Set<Integer> set = new HashSet<Integer>(nums.length);
//
//        for (int num : nums) {
//            if(!((HashSet) set).add(num)){
//                return true;
//            }
//        }
//        return false;

        //先将数组进行排序，再依次将相邻的元素进行比对判断。
        Arrays.sort(nums);
        for(int i = 1; i < nums.length; i++){
            if((nums[i] - nums[i - 1] )== 0)return true;
        }
        return false;
    }
}
